package com.alameda.controller.v1.user;

import com.alameda.common.result.Result;
import com.alameda.service.user.ApUserService;
import com.alameda.user.dto.ApUserDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 移动端用户 前端控制层
 *
 * @author Lv
 * @date 2024/09/22
 */
@Api(tags = "移动端用户")
@RestController
@RequestMapping("/ap_user")
public class ApUserController {

    @Autowired
    private ApUserService apUserService;

    /**
     * 登录移动端
     *
     * @param apUserDTO 移动端用户信息
     * @return
     */
    @ApiOperation("登录移动端")
    @PostMapping("/login")
    public Result<?> login(@RequestBody ApUserDTO apUserDTO) {
        return Result.success(apUserService.login(apUserDTO));
    }

    /**
     * 退出登录
     *
     * @return
     */
    @ApiOperation("退出登录")
    @PostMapping("/logout")
    public Result<?> logout() {
        return Result.success(apUserService.logout());
    }

    /**
     * 获取当前登录用户信息
     *
     * @return
     */
    @ApiOperation("获取当前登录用户信息")
    @GetMapping("/getInfo")
    public Result<?> getInfo() {
        return Result.success(apUserService.getInfo());
    }

    /**
     * 查询用户列表
     *
     * @param apUserDTO 移动端用户信息
     * @return
     */
    @ApiOperation("查询用户列表")
    @PostMapping("/list_user_info")
    public Result<?> listUserInfo(@RequestBody ApUserDTO apUserDTO) {
        return Result.success(apUserService.listUserInfo(apUserDTO));
    }

    /**
     * 保存用户
     *
     * @param apUserDTO 移动端用户信息
     * @return
     */
    @ApiOperation("保存或修改用户")
    @PostMapping("/save_user")
    public Result<?> saveUser(@RequestBody ApUserDTO apUserDTO) {
        return Result.success(apUserService.saveUser(apUserDTO));
    }

    /**
     * 修改用户
     *
     * @param apUserDTO 移动端用户信息
     * @return
     */
    @ApiOperation("修改用户")
    @PostMapping("/update_user")
    public Result<?> updateUser(@RequestBody ApUserDTO apUserDTO) {
        return Result.success(apUserService.updateUser(apUserDTO));
    }

    /**
     * 导出excel
     *
     * @param apUserDTO 移动端用户信息
     */
    @ApiOperation("导出excel")
    @PostMapping("/export")
    public void exportExcel(@RequestBody ApUserDTO apUserDTO) {
        apUserService.exportExcel(apUserDTO);
    }
}

